# -*- coding: utf-8 -*-

"""
Speichert und liefert programmweite Einstellungen. Diese sollten im Normalfall 
nicht über das Programm verändert werden, sondern direkt in dieser Datei.
Achtung! Die hier gespeicherten Settings sind nicht persistent! In der 
Datenbank existiert eine Tabelle 'Settings', welche für persistente Speicherung
von Einstellungen gedacht ist.

@author: Philipp Dermitzel
@date: 2011-03-31
@version: 1.1.0
"""
class Settings(object):
    
    """
    ----------------------------------------------------------------------------
    Klassenvariablen
    ----------------------------------------------------------------------------
    """
    
    """
    Die Einstellungen
    @type: Dictionary
    """
    __settings = {
        'debugMode'     : False,
        'debugFile'     : './mtmcLog.log',
        'imageFormats'  : ['jpg', 'jpeg', 'gif', 'png'],
        'lastFMKey'     : '3670e0a05e1418dd71385111658c6d9f',
        'imageDir'      : './'
    }
    
    """
    ----------------------------------------------------------------------------
    Getter und Setter
    ----------------------------------------------------------------------------
    """
    
    """
    Setter. Setzt eine neue Einstellung. Diese ist nur während der aktuellen 
    Ausführung des Programms aktiv!
    @param key: Der Name der Einstellung.
    @type key: String/int
    @param value: Der Wert der Einstellung.
    @type value: unknown
    """
    def setSetting(self, key, value):
        self.__settings[key] = value
    
    """
    Liefert einen Einstellungswert.
    @param key: Der Name der Einstellung.
    @type key: String/int
    @return: Der Wert der Einstellung.
    @rtype value: unknown
    """   
    def getSetting(self, key):
        return self.__settings[key]
    
    """
    Liefert alle Einstellungen.
    @return: Alle Einstellungen.
    @rtype: Dictionary
    """
    def getSettings(self):
        return self.__settings
